package com.seckill.service;

import com.seckill.domain.MiaoshaUser;
import com.seckill.result.Result;
import org.springframework.stereotype.Service;

/**
 * 秒杀一阶段逻辑-预减库存
 *
 * @author yangjunwei
 * @date 2021/11/16 4:42 下午
 */
public interface MiaoshaService {

    /**
     * 秒杀接口
     * @param miaoshaUser 用户信息
     * @param path 商品接口地址
     * @param goodsId 商品
     * @return
     */
    Result<Integer> domiaosha(MiaoshaUser miaoshaUser, String path, long goodsId);

    /**
     * 秒杀是否失败？
     */
    boolean getGoodsOver(long userId, long goodsId);

    /**
     * 获取秒杀结果 成功：订单Id 失败：-1 进行中：0
     */
    long getMiaoshaResult(long userId, long goodsId);

    String getMiaoshaPath(long userId, long goodsId);

    /**
     * 缓存中库存回退+1
     *
     * @param goodsId 商品Id
     */
    void incrStock(long goodsId);


}
